package Encapsulation.封装;

//外部类
public class MOuter {
	// 外部类中的方法
	public void show() {
		final int a = 25; // 常量
		final int b = 13; // 常量
		// final关键字可以修饰类、方法、属性、和变量。
		// 修饰类则该类不能被继承；修饰方法则该方法不能被覆盖或重写；修饰变量则该变量只能赋一次值，即为常量
		// 修饰属性则类的初始化属性必须有值，或在构造方法中赋值（但只能选其一）

		// 外部类中方法的内部类
		class MInner{
			int c = 2;// 内部类的变量

			public void print() {
				System.out.println("访问外部类方法中的常量a、b：" + a + "、" + b);
				System.out.println("访问内部类中的变量c：" + c);

			}
		}
		MInner mi = new MInner(); // 创建方法内部类的对象
		mi.print(); // 调用内部类的方法
		System.out.println(mi.c); //访问内部类变量
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MOuter mo = new MOuter(); // 创建外部类的对象
		mo.show(); // 调用外部类的方法

	}
}
